package com.hyh.spring.config;

import org.springframework.cloud.gateway.route.RouteLocator;
import org.springframework.cloud.gateway.route.builder.RouteLocatorBuilder;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;

/**
 * @BelongsPackage: com.hyh.spring.config
 * @ClassName GateWayConfig
 * @Author: hyhWTX
 * @CreateTime: 2023-04-22  21:38
 * @Description: 自定义一个网关路由路径的配置
 * @Version: 1.0
 */
@Configuration
public class GateWayConfig {
    /**
     * 配置了一个id为route-name的路由规则，
     *    当访问地址 http://localhost:9527/guonei时会自动转发到地址：http://news.baidu.com/guonei
     * @param routeLocatorBuilder
     * @return
     */
    @Bean
    public RouteLocator customRouteLocator(RouteLocatorBuilder routeLocatorBuilder){
        //构建路由
        RouteLocatorBuilder.Builder routes = routeLocatorBuilder.routes();
        //进行路由配置
        //路由的ID,没有固定的规则但是要求唯一，建议配合服务名
        routes.route("path_route_hyhzixue",
                //断言，路径相匹配的进行路由
                r->r.path("/guonei")
                        //匹配后提供服务的路由地址，此处以百度新闻为举例示范
                        .uri("http://news.baidu.com/guonei")).build();
        //再次进行路由配置
        //路由ID，
        routes.route("path_route_hyhzixue2",
                //断言
                r->r.path("/index")
                        .uri("https://tieba.baidu.com/index.html")).build();



        //构建完成
        return  routes.build();

    }

}
